import request from './request'

/**
 * 系统管理员相关接口服务
 */
export default {
  /**
   * 获取管理员列表或单个管理员详情
   * @param {Object} params - 查询参数
   * @param {String} userId - 管理员ID（可选）
   * @returns {Promise}
   */
  getAdmin(params = {}, userId = '') {
    return request({
      url: userId ? `/api/sys_admin/${userId}` : '/api/sys_admin',
      method: 'get',
      params
    })
  },

  /**
   * 创建管理员
   * @param {Object} data - 管理员数据
   * @param {Boolean} isBatch - 是否批量创建
   * @returns {Promise}
   */
  createAdmin(data, isBatch = false) {
    const postData = isBatch ? { SysAdminList: JSON.stringify(data) } : data
    return request({
      url: '/api/sys_admin',
      method: 'post',
      data: postData
    })
  },

  /**
   * 更新管理员基本信息
   * @param {String} userId - 管理员ID
   * @param {Object} data - 更新数据
   * @returns {Promise}
   */
  updateAdmin(userId, data) {
    return request({
      url: `/api/sys_admin/${userId}`,
      method: 'put',
      data
    })
  },

  /**
   * 更新管理员敏感信息（删除状态等）
   * @param {String} userId - 管理员ID
   * @param {Object} data - 更新数据
   * @returns {Promise}
   */
  updateSensitiveInfo(userId, data) {
    return request({
      url: `/api/sysadmin/update/${userId}`,
      method: 'put',
      data: {
        ...data,
        _method: 'PUT' // 某些后端框架需要这个参数来识别PUT请求
      }
    })
  },

  /**
   * 删除管理员
   * @param {String} userId - 管理员ID
   * @returns {Promise}
   */
  deleteAdmin(userId) {
    return request({
      url: `/api/sys_admin/${userId}`,
      method: 'delete'
    })
  }
}
